#ifndef NAVIGATIONWINDOWS_H
#define NAVIGATIONWINDOWS_H

#include "Config.h"
#include "NoteBookNavigationWindow.h"
#include "NoteBookDirNavigationWindow.h"
#include "SearchNavigationWindow.h"
#include "HeadFiles.h"

namespace hps {

class NavigationWindows: public QWidget {
    Q_OBJECT
public:
    NavigationWindows();
    void init();
    void setUi();
    std::vector<QWidget*> getNavWindowList() const {return m_navigationWinList; }
public:
    void hideAllNav();

    void showNoteBookNav() { m_noteBookNavigation -> show(); }
    void hideNoteBookNav() { m_noteBookNavigation -> hide(); }

    void showNoteBookDirNav() { m_noteBookDirNavigation -> show(); }
    void hideNoteBookDirNav() { m_noteBookDirNavigation -> hide(); }

    void showSearchNav() { m_searchNavigation -> show(); }
    void hideSearchNav() { m_searchNavigation -> hide(); }

    FileManager* getNoteBookFileManager() const { return m_noteBookNavigation -> getFileManager(); }
    NoteBookNavigationWindow* getNoteBookNav() const { return m_noteBookNavigation; }
private:
    int m_navWinCnt = 0;
    QHBoxLayout* m_layout;
    std::vector<QWidget*> m_navigationWinList;

    NoteBookNavigationWindow* m_noteBookNavigation;
    NoteBookDirNavigationWindow* m_noteBookDirNavigation;
    SearchNavigationWindow* m_searchNavigation;
};

} // hps

#endif //NAVIGATIONWINDOWS_H
